package ai.people.platform.archives.service;

import ai.people.netmon.framework.domain.gang.construction.request.RelationLibConfigListRequest;
import ai.people.netmon.framework.domain.gang.construction.request.RelationLibConfigSaveOrUpdateRequest;
import ai.people.netmon.framework.domain.gang.construction.request.RelationRuleRequest;
import ai.people.netmon.framework.domain.gang.construction.vo.RelationLibConfigVO;
import ai.people.netmon.framework.domain.gang.construction.vo.RelationRuleVO;
import ai.people.netmon.framework.model.response.PageResponse;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author zhenglin
 * @since 2022-07-19
 */
public interface RelationLibService  {

    /**
     * 关系规则列表
     *
     * @param request 请求
     * @return {@link RelationRuleVO}
     */
    RelationRuleVO getRelationRule(RelationRuleRequest request);

    /**
     * 添加规则
     *
     * @param request 请求
     */
    void addConfig(RelationLibConfigSaveOrUpdateRequest request);

    /**
     * 更新规则
     *
     * @param request 请求
     */
    void updateConfig(RelationLibConfigSaveOrUpdateRequest request);

    /**
     * 删除规则
     *
     * @param id id
     */
    void deleteConfig(Long id);

    /**
     * 规则列表
     *
     * @param request 请求
     * @return {@link PageResponse}<{@link RelationLibConfigVO}>
     */
    PageResponse<RelationLibConfigVO> listConfig(RelationLibConfigListRequest request);

}
